The present application relates to computer manufacturing, and particularly to a smart component selection process which selects the correct software and diagnostic routines for a given hardware and software configuration.
Background: Software Installation
Software installation is normally a burden with new computers, and is often a source of frustration for consumers. Thus, pre-installation of software by the computer manufacturer is very welcome to consumers. Pre-installation also helps to avoid problems which might be caused by software incompatibilities or incorrect installation of software. Pre-installation of software also helps to avoid unnecessary service calls to the computer manufacturer which may be due to the consumer's difficulty in understanding the software installation instructions.
Software Management
Pre-installation of software to prevent incompatibilities or incorrect installation at the consumer level requires careful software management. This management takes place not only prior to but also during the manufacturing process.
Traditionally, pre-installation is accomplished through creation of disk images. A disk image is a file that holds a copy of all of the data, including partitioning and driver information, contained on a given storage medium (usually a hard disk drive). Disk images are usually prepared by a software engineering group once a personal computer has been configured with all of the appropriate components (operating system, applications, utilities, TSRs, etc.). This configured computer is referred to as a "master". The disk images themselves are then replicated and distributed to remote manufacturing sites for installation on consumer machines.
Configuration and installation takes place prior to packing the unit for shipping in order to provide the consumer with a unit that is operable ("ready to run") upon receipt. Configuration of the unit encompasses partitioning the unit's hard drive, setting up boot information, and adding file directory structure information. Installation is the process of writing the physical software files to the hard drive.
Background: Zip Deliverables
The role of a software distribution system is to facilitate the transfer of software, which is to be released to the consumer, to the manufacturing site. Once at the manufacturing site, the software will be installed and configured on a raw (unformatted) hard drive or the hard drive of a newly assembled personal computer.
Current distribution techniques depend on a batch delivery system. The batch is composed of a disk image (namely, the set of files released for installation consisting of all required components) which has been compressed into a single deliverable unit. Compression is a process by which the disk image is condensed in order to take up less storage space. Such a unit is often referred to as a "zip deliverable", which is a reference to the compression utility, PKZIP.TM., most often used to create the compressed file deliverable.
Currently, zip deliverables are distributed in what is known as the drop method, that is, when any change is made to just one of the files constituting the zip deliverable, the entire deliverable must be rebuilt and redistributed (dropped) to the manufacturing site. Such a distribution method puts an even greater demand on transmission capabilities, since all rebuilt deliverables will need to be redistributed to the manufacturing facilities in a relatively short period of time. Without prompt updates, the manufacturer has to allocate greater resources to post-consumer fixes.
Background: Disk Image Disadvantages
The use of disk images for distribution of software has inherent disadvantages. First, the size of disk images needed to distribute complete system software configurations has grown almost exponentially in the past 10 years, from 30 megabytes to over 400 megabytes, due to the increased hard disk space requirements of more functional operating systems and feature-rich applications.
Consequently, the storage media for the disk image must meet ever increasing capacity demands and distribution costs continue to rise.
Second, disk images are limited to one configuration. Changes in disk image configuration can result from any difference in hardware and software combinations. For each change in configuration, no matter how slight, an entirely new disk image must be built, replicated, and distributed. Most installation configurations tend to have one or more files in common, such as the operating system or user applications. This results in many files being duplicated and distributed multiple times. Large amounts of hardware storage space are required to store these common files multiple times, once for each minor difference in configuration.
Third, disk images cannot be updated. Once a disk image is built, it cannot be modified. Components that comprise disk images may need to be changed because of a software bug fix or new revision. If a component is changed, each disk image incorporating that component must be rebuilt, replicated, and distributed.
Fourth, in addition to greater demands on storage space, the amount of time to distribute multiple disk images has greatly increased. With each different configuration, time must be taken to create its disk image. The disk image must then be distributed.
The increase in the size of the disk image, even if the distribution system is computer network based, has a corresponding effect on the disk image transmission time. As the number of different computer configurations grows, improved transmission capability in terms of both speed and accuracy is required. Both speed and accuracy factor into maintaining efficient distribution of software to computer manufacturing facilities. Minimizing distribution time for disk images can be critical when updates to components have occurred to fix software bugs: The faster the disk image can be propagated to the installation site, the fewer the number of computers released with faulty software.
Finally, zip deliverables have the inherent disadvantage of a lack of security. During the distribution process, the media which contain the software may not be within the control of the manufacturer. If the zip deliverables are distributed via a common carrier, they could be misplaced or stolen. Because the zip deliverable is merely a compressed version of a configured software install, there is some risk that it could be used by anyone with the proper hardware and software to install or upgrade software on their own machine or the machines of others. Further, there is some risk that an intercepted zip deliverable could be imperceptibly altered to remove or add data (including viruses) and then sent on to the remote manufacturing facility.
Remote manufacturing facilities are not necessarily under the control of the manufacturing headquarters. In fact, some remote manufacturing facilities may be responsible for the assembly and configuration of machines from many different computer manufacturers. The zip deliverables themselves may contain the proprietary software of a particular company. Therefore, security of pre-installation software configurations is important within the remote manufacturing facility. A further concern, even at the remote manufacturing facility, is that the zip deliverables, due to their small size and ready mobility, could become misappropriated.
Background: Computer Manufacturing Constraints
Mass-manufacturing of mid-market or high-end personal computers faces some difficult constraints: software must be released from a software engineering group and distributed to a computer manufacturing facility without alterations that would change the configuration for a particular machine. The complete hardware and software configuration must be carefully controlled, to avoid substitutions which introduce incompatibilities; the distribution process must be efficient in order to reduce the amount of information that is distributed; and revised system configurations must be manufactured and shipped very quickly in order to reduce the number of computers which leave the factory without the most current version of released software.
A further important constraint is time-to-market. The ability to meet consumer demands quickly, and provide the newest features as soon as possible, is crucial. Thus, the software pre-installation process must not be too rigid. It must remain in a state that allows new configurations and combinations of existing configurations to be integrated quickly and easily to satisfy changing customer demands.
Background: Rules-Based Software Selection
A properly configured computer should be installed with versions of software which are compatible with its hardware configuration. Further, the various software files should be compatible with each other. The zip deliverable method described above is one way to ensure that compatible software is installed onto a computer. However, unless the zip deliverable is coupled to a specific hardware configuration, compatibility problems may still arise.
An inference procedure, such as a rules based software selection method, can be used to ensure that the software installed on a computer is compatible with itself and with its supporting hardware. The rules take a heuristic approach to software selection decisions. That is, the result of application of the rules base to the hardware installed and the software packages desired is a list of the software components that need to be installed and configured.
A rules base for software selection can take on many forms. For example, it can be a flow chart in which, given the hardware selection, decision boxes for each software package to be installed are followed to determine the exact software configuration for the given machine. Multi-dimensional decision tables or decision trees can also be used to determine software configurations by hand.
Working through a rules base by hand for each software package can be time consuming and quickly become a bottleneck in the manufacturing process. This is especially the case when factors such as operating system choice and language are added. Furthermore, creating a decision chart for each hardware and software configuration is also time consuming. Finally, several different packages may require the same additional software, such as video drivers or TSRs, in order to run appropriately. Therefore, creating a software configuration list by hand can lead to duplicative effort and occasionally the mistaken installation of the same software multiple times.
Background: Hardware and Software Diagnostics
For any newly assembled computer, or even some computer hardware sub-assemblies such as hard drives, it is usually necessary to run a battery of tests (or "diagnostics") to ensure proper function. Such diagnostics can also be run for the software. However, because each computer can be configured in a slightly different way, a single diagnostic routine, or even a set of diagnostics may not be able to fully test a machine for proper configuration. It is often necessary to perform additional diagnostics for hardware such as high resolution video boards or tape backup drives that are not installed into every computer that is manufactured.
It is also necessary to test and configure software that is installed on a new computer before it is shipped. Today, in both consumer and business markets, ready-to-run computers are in demand. That is, when a new computer is received, the user expects to turn it on and immediately begin making beneficial use of it. Having to install and configure software is a time-consuming and sometimes technically challenging task for the casual computer user.
Pre-installation of software solves only part of this problem. Many modern software packages install easily but then require a lengthy set-up process before they are used for the first time. To avoid this situation, the software must be set up to run properly without requiring a lengthy dialog with the user. Diagnostic processes for software are capable of ensuring that the software is installed properly. Set-up processes can create and save most, if not all, of the information the software will need to run properly when it is first executed.
Like the hardware components that make up a newly manufactured computer, both diagnostic and set-up processes are different for each software package that is installed onto the computer. Therefore, each different software configuration installed on a computer requires a different set of diagnostics and set-up processes. The particular processes to be installed for testing of both hardware and software can be determined through a rules based procedure like that described above for the determination of software configurations.
Computer Manufacturing with Smart Configuration Methods
The present application describes a computer manufacturing architecture which automatically selects the appropriate software and diagnostic and set-up routines to install onto a computer or hard drive based on the installed hardware and software selections. Preferably a server with a rules database is used to receive software selections from the computer manufacturer. The selections are processed according to the rules base and a list of the software components and software and hardware diagnostics and set-up routines to be installed is produced. This list is used to download the appropriate software to the computer or hard drive.
In particular, the process utilizes a database table which contains rules associated with the hardware and software components which can be selected for installation in a new computer or hard drive. The server maintaining the database collects information concerning the hardware installed in a new computer, or the serial number of a raw hard drive, and the software to be installed on the computer or drive in the form of a list. The software portion of the list can include selections of an operating system, and various applications such as Wordperfect.TM. as well as information concerning the purchaser of the system and the language preference of the purchaser. The hardware portion of this list is formatted and stored for later use in the as-built database.
The hardware information is also used by the software selection rules base to determine which particular software packages to select for download. Given the hardware selections, installed operating system, and language preference, a customized rules set is built and evaluated to determine which software components will need to be downloaded. In addition to the determination of which software components to select for download, diagnostic and set-up routines are also determined by the same rules base.
A list containing hardware and software part numbers, including diagnostic and set-up routines is then stored in the as-built database for reference once the computer or hard drive is connected to the download network and prepared for pre-installation. After the software download has completed successfully, the diagnostic and set-up routines are activated in order to put the new computer or hard drive into a ready-to-run state.
Once the download and diagnostics have completed, the configuration of the machine may be saved for repeated use. If this option is selected, an image of the hard drive with its pre-installed and configured software is created and stored in the CCP database.
The above procedures are preferably combined with the software pre-installation process and "as-built" database described in application Ser. No. 09/070,589, filed Apr. 30, 1998 which is hereby incorporated by reference.
The advantages of the innovative optimized distribution model are numerous. Installation of software packages having known incompatibilities with hardware and other software packages can be avoided by the use of the rules base. With a reduction in incompatibilities, the manufacturer can be more confident in providing a greater variety of hardware and software configurations. With a greater number of configurations available, order takers have more options to offer and computer users have more combinations from which to choose.
Another advantage is that a software selection rules base offers more choices of software configuration than zip deliverables because every possible combination of software and hardware can be achieved through a small set of rules. With zip deliverables, even though every possible combination can be created, it is inefficient to create and distribute rarely used configurations.
Another advantage is that diagnostic and set-up processes which are tailored to a particular hardware and software configuration enable a more thorough testing of the hardware and software installed in the computer.
Another advantage is that a rules base held in a database which automatically selects the proper software to install based on a set of parameters greatly speeds the manufacturing process by eliminating a potential bottleneck caused by an installer having to walk through a flowchart or decision tree by hand to determine the proper software and testing procedures to be installed.
Another advantage is that previously built configurations can be saved and used on other machines, thereby reducing the time needed to construct a selection list for each new machine.
Another advantage of this innovative process is the capability to feed Quality-Control solutions based on passed or failed diagnostics back into the manufacturing process more quickly for delivery of a reliable product.
Another advantage is the ability to meet consumer demands with delivery of a reliable product in a very short period of time.
Another advantage is that separate disk images for each minor configuration change will not have to be produced and distributed, any configuration needed can be created via the software selection process.
Another advantage is more efficient updating: Updates to software can be released at any time and their rules for installation propagated throughout the system, without the need to rebuild multiple disk images and without the delay usually associated with their distribution.